home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / X11 / extensions / XKBproto.h < prev    next >
C/C++ Source or Header  |  2006-04-12  |  31KB  |  1,283 lines

  1. /* $Xorg: XKBproto.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $ */
  2. /************************************************************
  3. Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
  4.  
  5. Permission to use, copy, modify, and distribute this
  6. software and its documentation for any purpose and without
  7. fee is hereby granted, provided that the above copyright
  8. notice appear in all copies and that both that copyright
  9. notice and this permission notice appear in supporting
  10. documentation, and that the name of Silicon Graphics not be 
  11. used in advertising or publicity pertaining to distribution 
  12. of the software without specific prior written permission.
  13. Silicon Graphics makes no representation about the suitability 
  14. of this software for any purpose. It is provided "as is"
  15. without any express or implied warranty.
  16.  
  17. SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS 
  18. SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 
  19. AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
  20. GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL 
  21. DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 
  22. DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 
  23. OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
  24. THE USE OR PERFORMANCE OF THIS SOFTWARE.
  25.  
  26. ********************************************************/
  27.  
  28. #ifndef _XKBPROTO_H_
  29. #define    _XKBPROTO_H_
  30.  
  31. #include <X11/Xmd.h>
  32. #include <X11/extensions/XKB.h>
  33.  
  34. #define Window CARD32
  35. #define Atom CARD32
  36. #define Time CARD32
  37. #define KeyCode CARD8
  38. #define KeySym CARD32
  39.  
  40. #define    XkbPaddedSize(n)    ((((unsigned int)(n)+3) >> 2) << 2)
  41.  
  42. typedef struct _xkbUseExtension {
  43.     CARD8    reqType;
  44.     CARD8    xkbReqType;    /* always X_KBUseExtension */
  45.     CARD16    length B16;
  46.     CARD16    wantedMajor B16;
  47.     CARD16    wantedMinor B16;
  48. } xkbUseExtensionReq;
  49. #define    sz_xkbUseExtensionReq    8
  50.  
  51. typedef struct _xkbUseExtensionReply {
  52.     BYTE    type;        /* X_Reply */
  53.     BOOL    supported;
  54.     CARD16    sequenceNumber B16;
  55.     CARD32    length B32;
  56.     CARD16    serverMajor B16;
  57.     CARD16    serverMinor B16;
  58.     CARD32    pad1 B32;
  59.     CARD32    pad2 B32;
  60.     CARD32    pad3 B32;
  61.     CARD32    pad4 B32;
  62.     CARD32    pad5 B32;
  63. } xkbUseExtensionReply;
  64. #define    sz_xkbUseExtensionReply    32
  65.  
  66. typedef    struct _xkbSelectEvents {
  67.     CARD8    reqType;
  68.     CARD8    xkbReqType;    /* X_KBSelectEvents */
  69.     CARD16    length B16;
  70.     CARD16    deviceSpec B16;
  71.     CARD16    affectWhich B16;
  72.     CARD16    clear B16;
  73.     CARD16    selectAll B16;
  74.     CARD16    affectMap B16;
  75.     CARD16    map B16;
  76. } xkbSelectEventsReq;
  77. #define    sz_xkbSelectEventsReq    16
  78.  
  79. typedef struct _xkbBell {
  80.     CARD8    reqType;
  81.     CARD8    xkbReqType;    /* X_KBBell */
  82.     CARD16    length B16;
  83.     CARD16    deviceSpec B16;
  84.     CARD16    bellClass B16;
  85.     CARD16    bellID B16;
  86.     INT8    percent;
  87.     BOOL    forceSound;
  88.     BOOL    eventOnly;
  89.     CARD8    pad1;
  90.     INT16    pitch B16;
  91.     INT16    duration B16;
  92.     CARD16    pad2 B16;
  93.     Atom    name B32;
  94.     Window    window B32;
  95. } xkbBellReq;
  96. #define    sz_xkbBellReq        28
  97.  
  98. typedef struct _xkbGetState {
  99.     CARD8        reqType;
  100.     CARD8        xkbReqType;    /* always X_KBGetState */
  101.     CARD16        length B16;
  102.     CARD16        deviceSpec B16;
  103.     CARD16        pad B16;
  104. } xkbGetStateReq;
  105. #define    sz_xkbGetStateReq    8
  106.  
  107. typedef    struct _xkbGetStateReply {
  108.     BYTE    type;
  109.     BYTE    deviceID;
  110.     CARD16    sequenceNumber B16;
  111.     CARD32    length B32;
  112.     CARD8    mods;
  113.     CARD8    baseMods;
  114.     CARD8    latchedMods;
  115.     CARD8    lockedMods;
  116.     CARD8    group;
  117.     CARD8    lockedGroup;
  118.     INT16    baseGroup B16;
  119.     INT16    latchedGroup B16;
  120.     CARD8    compatState;
  121.     CARD8    grabMods;
  122.     CARD8    compatGrabMods;
  123.     CARD8    lookupMods;
  124.     CARD8    compatLookupMods;
  125.     CARD8    pad1;
  126.     CARD16    ptrBtnState B16;
  127.     CARD16    pad2 B16;
  128.     CARD32    pad3 B32;
  129. } xkbGetStateReply;
  130. #define    sz_xkbGetStateReply    32
  131.  
  132. typedef struct _xkbLatchLockState {
  133.     CARD8    reqType;
  134.     CARD8    xkbReqType;    /* always X_KBLatchLockState */
  135.     CARD16    length B16;
  136.     CARD16    deviceSpec B16;
  137.     CARD8    affectModLocks;
  138.     CARD8    modLocks;
  139.     BOOL    lockGroup;
  140.     CARD8    groupLock;
  141.     CARD8    affectModLatches;
  142.     CARD8    modLatches;
  143.     CARD8    pad;
  144.     BOOL    latchGroup;
  145.     INT16    groupLatch B16;
  146. } xkbLatchLockStateReq;
  147. #define    sz_xkbLatchLockStateReq        16
  148.  
  149. typedef struct _xkbGetControls {
  150.     CARD8    reqType;
  151.     CARD8    xkbReqType;    /* always X_KBGetControls */
  152.     CARD16    length B16;
  153.     CARD16    deviceSpec B16;
  154.     CARD16    pad B16;
  155. } xkbGetControlsReq;
  156. #define    sz_xkbGetControlsReq    8
  157.  
  158. typedef struct _xkbGetControlsReply {
  159.     BYTE    type;        /* X_Reply */
  160.     CARD8    deviceID;
  161.     CARD16    sequenceNumber B16;
  162.     CARD32    length B32;
  163.     CARD8    mkDfltBtn;
  164.     CARD8    numGroups;
  165.     CARD8    groupsWrap;
  166.     CARD8    internalMods;
  167.     CARD8    ignoreLockMods;
  168.     CARD8    internalRealMods;
  169.     CARD8    ignoreLockRealMods;
  170.     CARD8    pad1;
  171.     CARD16    internalVMods B16;
  172.     CARD16    ignoreLockVMods B16;
  173.     CARD16    repeatDelay B16;
  174.     CARD16    repeatInterval B16;
  175.     CARD16    slowKeysDelay B16;
  176.     CARD16    debounceDelay B16;
  177.     CARD16    mkDelay B16;
  178.     CARD16    mkInterval B16;
  179.     CARD16    mkTimeToMax B16;
  180.     CARD16    mkMaxSpeed B16;
  181.     INT16    mkCurve B16;
  182.     CARD16    axOptions B16;
  183.     CARD16    axTimeout B16;
  184.     CARD16    axtOptsMask B16;
  185.     CARD16    axtOptsValues B16;
  186.     CARD16    pad2 B16;
  187.     CARD32    axtCtrlsMask B32;
  188.     CARD32    axtCtrlsValues B32;
  189.     CARD32    enabledCtrls B32;
  190.     BYTE    perKeyRepeat[XkbPerKeyBitArraySize];
  191. } xkbGetControlsReply;
  192. #define    sz_xkbGetControlsReply    92
  193.  
  194. typedef struct _xkbSetControls {
  195.     CARD8    reqType;
  196.     CARD8    xkbReqType;    /* always X_KBSetControls */
  197.     CARD16    length B16;
  198.     CARD16    deviceSpec B16;
  199.     CARD8    affectInternalMods;
  200.     CARD8    internalMods;
  201.     CARD8    affectIgnoreLockMods;
  202.     CARD8    ignoreLockMods;
  203.     CARD16    affectInternalVMods B16;
  204.     CARD16    internalVMods B16;
  205.     CARD16    affectIgnoreLockVMods B16;
  206.     CARD16    ignoreLockVMods B16;
  207.     CARD8    mkDfltBtn;
  208.     CARD8    groupsWrap;
  209.     CARD16    axOptions B16;
  210.     CARD16    pad1 B16;
  211.     CARD32    affectEnabledCtrls B32;
  212.     CARD32    enabledCtrls B32;
  213.     CARD32    changeCtrls B32;
  214.     CARD16    repeatDelay B16;
  215.     CARD16    repeatInterval B16;
  216.     CARD16    slowKeysDelay B16;
  217.     CARD16    debounceDelay B16;
  218.     CARD16    mkDelay B16;
  219.     CARD16    mkInterval B16;
  220.     CARD16    mkTimeToMax B16;
  221.     CARD16    mkMaxSpeed B16;
  222.     INT16    mkCurve B16;
  223.     CARD16    axTimeout B16;
  224.     CARD32    axtCtrlsMask B32;
  225.     CARD32    axtCtrlsValues B32;
  226.     CARD16    axtOptsMask B16;
  227.     CARD16    axtOptsValues B16;
  228.     BYTE    perKeyRepeat[XkbPerKeyBitArraySize];
  229. } xkbSetControlsReq;
  230. #define    sz_xkbSetControlsReq    100
  231.  
  232. typedef    struct _xkbKTMapEntryWireDesc {
  233.     BOOL    active;
  234.     CARD8    mask;
  235.     CARD8    level;
  236.     CARD8    realMods;
  237.     CARD16    virtualMods B16;
  238.     CARD16    pad B16;
  239. } xkbKTMapEntryWireDesc;
  240. #define sz_xkbKTMapEntryWireDesc    8
  241.  
  242. typedef struct _xkbKTSetMapEntryWireDesc {
  243.     CARD8    level;
  244.     CARD8    realMods;
  245.     CARD16    virtualMods B16;
  246. } xkbKTSetMapEntryWireDesc;
  247. #define    sz_xkbKTSetMapEntryWireDesc    4
  248.  
  249. typedef struct _xkbModsWireDesc {
  250.     CARD8    mask;        /* GetMap only */
  251.     CARD8    realMods;
  252.     CARD16    virtualMods B16;
  253. } xkbModsWireDesc;
  254. #define    sz_xkbModsWireDesc    4
  255.  
  256. typedef struct _xkbKeyTypeWireDesc {
  257.     CARD8    mask;
  258.     CARD8    realMods;
  259.     CARD16    virtualMods B16;
  260.     CARD8    numLevels;
  261.     CARD8    nMapEntries;
  262.     BOOL    preserve;
  263.     CARD8    pad;
  264. } xkbKeyTypeWireDesc;
  265. #define    sz_xkbKeyTypeWireDesc    8
  266.  
  267. typedef struct _xkbSymMapWireDesc {
  268.     CARD8    ktIndex[XkbNumKbdGroups];
  269.     CARD8    groupInfo;
  270.     CARD8    width;
  271.     CARD16    nSyms B16;
  272. } xkbSymMapWireDesc;
  273. #define    sz_xkbSymMapWireDesc    8
  274.  
  275. typedef struct _xkbVModMapWireDesc {
  276.     KeyCode    key;
  277.     CARD8    pad;
  278.     CARD16    vmods B16;
  279. } xkbVModMapWireDesc;
  280. #define    sz_xkbVModMapWireDesc    4
  281.  
  282. typedef struct _xkbBehaviorWireDesc {
  283.     CARD8    key;
  284.     CARD8    type;
  285.     CARD8    data;
  286.     CARD8    pad;
  287. } xkbBehaviorWireDesc;
  288. #define    sz_xkbBehaviorWireDesc    4
  289.  
  290. typedef    struct _xkbActionWireDesc {
  291.     CARD8    type;
  292.     CARD8    data[7];
  293. } xkbActionWireDesc;
  294. #define    sz_xkbActionWireDesc    8
  295.  
  296. typedef struct _xkbGetMap {
  297.     CARD8    reqType;
  298.     CARD8    xkbReqType;    /* always X_KBGetMap */
  299.     CARD16    length B16;
  300.     CARD16    deviceSpec B16;
  301.     CARD16    full B16;
  302.     CARD16    partial B16;
  303.     CARD8    firstType;
  304.     CARD8    nTypes;
  305.     KeyCode    firstKeySym;
  306.     CARD8    nKeySyms;
  307.     KeyCode    firstKeyAct;
  308.     CARD8    nKeyActs;
  309.     KeyCode    firstKeyBehavior;
  310.     CARD8    nKeyBehaviors;
  311.     CARD16    virtualMods B16;
  312.     KeyCode    firstKeyExplicit;
  313.     CARD8    nKeyExplicit;
  314.     KeyCode    firstModMapKey;
  315.     CARD8    nModMapKeys;
  316.     KeyCode    firstVModMapKey;
  317.     CARD8    nVModMapKeys;
  318.     CARD16    pad1 B16;
  319. } xkbGetMapReq;
  320. #define    sz_xkbGetMapReq    28
  321.  
  322. typedef struct _xkbGetMapReply {
  323.     CARD8    type;        /* always X_Reply */
  324.     CARD8    deviceID;
  325.     CARD16    sequenceNumber B16;
  326.     CARD32    length B32;
  327.     CARD16    pad1 B16;
  328.     KeyCode    minKeyCode;
  329.     KeyCode    maxKeyCode;
  330.     CARD16    present B16;
  331.     CARD8    firstType;
  332.     CARD8    nTypes;
  333.     CARD8    totalTypes;
  334.     KeyCode    firstKeySym;
  335.     CARD16    totalSyms B16;
  336.     CARD8    nKeySyms;
  337.     KeyCode    firstKeyAct;
  338.     CARD16    totalActs B16;
  339.     CARD8    nKeyActs;
  340.     KeyCode    firstKeyBehavior;
  341.     CARD8    nKeyBehaviors;
  342.     CARD8    totalKeyBehaviors;
  343.     KeyCode    firstKeyExplicit;
  344.     CARD8    nKeyExplicit;
  345.     CARD8    totalKeyExplicit;
  346.     KeyCode    firstModMapKey;
  347.     CARD8    nModMapKeys;
  348.     CARD8    totalModMapKeys;
  349.     KeyCode    firstVModMapKey;
  350.     CARD8    nVModMapKeys;
  351.     CARD8    totalVModMapKeys;
  352.     CARD8    pad2;
  353.     CARD16    virtualMods B16;
  354. } xkbGetMapReply;
  355. #define    sz_xkbGetMapReply        40
  356.  
  357. #define    XkbSetMapResizeTypes        (1L<<0)
  358. #define    XkbSetMapRecomputeActions    (1L<<1)
  359. #define    XkbSetMapAllFlags        (0x3)
  360.  
  361. typedef struct _xkbSetMap {
  362.     CARD8    reqType;
  363.     CARD8    xkbReqType;    /* always X_KBSetMap */
  364.     CARD16    length B16;
  365.     CARD16    deviceSpec B16;
  366.     CARD16    present B16;
  367.     CARD16    flags B16;
  368.     KeyCode    minKeyCode;
  369.     KeyCode    maxKeyCode;
  370.     CARD8    firstType;
  371.     CARD8    nTypes;
  372.     KeyCode    firstKeySym;
  373.     CARD8    nKeySyms;
  374.     CARD16    totalSyms B16;
  375.     KeyCode    firstKeyAct;
  376.     CARD8    nKeyActs;
  377.     CARD16    totalActs B16;
  378.     KeyCode    firstKeyBehavior;
  379.     CARD8    nKeyBehaviors;
  380.     CARD8    totalKeyBehaviors;
  381.     KeyCode    firstKeyExplicit;
  382.     CARD8    nKeyExplicit;
  383.     CARD8    totalKeyExplicit;
  384.     KeyCode    firstModMapKey;
  385.     CARD8    nModMapKeys;
  386.     CARD8    totalModMapKeys;
  387.     KeyCode    firstVModMapKey;
  388.     CARD8    nVModMapKeys;
  389.     CARD8    totalVModMapKeys;
  390.     CARD16    virtualMods B16;
  391. } xkbSetMapReq;
  392. #define    sz_xkbSetMapReq    36
  393.  
  394. typedef struct _xkbSymInterpretWireDesc {
  395.     CARD32        sym B32;
  396.     CARD8        mods;
  397.     CARD8        match;
  398.     CARD8        virtualMod;
  399.     CARD8        flags;
  400.     xkbActionWireDesc    act;
  401. } xkbSymInterpretWireDesc;
  402. #define    sz_xkbSymInterpretWireDesc    16
  403.  
  404. typedef struct _xkbGetCompatMap {
  405.     CARD8    reqType;
  406.     CARD8    xkbReqType;    /* always X_KBGetCompatMap */
  407.     CARD16    length B16;
  408.     CARD16    deviceSpec B16;
  409.     CARD8    groups;
  410.     BOOL    getAllSI;
  411.     CARD16    firstSI B16;
  412.     CARD16    nSI B16;
  413. } xkbGetCompatMapReq;
  414. #define    sz_xkbGetCompatMapReq    12
  415.  
  416. typedef struct _xkbGetCompatMapReply {
  417.     CARD8    type;        /* always X_Reply */
  418.     CARD8    deviceID;
  419.     CARD16    sequenceNumber B16;
  420.     CARD32    length B32;
  421.     CARD8    groups;
  422.     CARD8    pad1;
  423.     CARD16    firstSI B16;
  424.     CARD16    nSI B16;
  425.     CARD16    nTotalSI B16;
  426.     CARD32    pad2 B32;
  427.     CARD32    pad3 B32;
  428.     CARD32    pad4 B32;
  429.     CARD32    pad5 B32;
  430. } xkbGetCompatMapReply;
  431. #define    sz_xkbGetCompatMapReply        32
  432.  
  433. typedef struct _xkbSetCompatMap {
  434.     CARD8    reqType;
  435.     CARD8    xkbReqType;    /* always X_KBSetCompatMap */
  436.     CARD16    length B16;
  437.     CARD16    deviceSpec B16;
  438.     CARD8    pad1;
  439.     BOOL    recomputeActions;
  440.     BOOL    truncateSI;
  441.     CARD8    groups;
  442.     CARD16    firstSI B16;
  443.     CARD16    nSI B16;
  444.     CARD16    pad2 B16;
  445. } xkbSetCompatMapReq;
  446. #define    sz_xkbSetCompatMapReq    16
  447.  
  448. typedef struct _xkbGetIndicatorState {
  449.     CARD8    reqType;
  450.     CARD8    xkbReqType;    /* always X_KBGetIndicatorState */
  451.     CARD16    length B16;
  452.     CARD16    deviceSpec B16;
  453.     CARD16    pad1 B16;
  454. } xkbGetIndicatorStateReq;
  455. #define    sz_xkbGetIndicatorStateReq    8
  456.  
  457. typedef struct _xkbGetIndicatorStateReply {
  458.     CARD8    type;        /* always X_Reply */
  459.     CARD8    deviceID;
  460.     CARD16    sequenceNumber B16;
  461.     CARD32    length B32;
  462.     CARD32    state B32;
  463.     CARD32    pad1 B32;
  464.     CARD32    pad2 B32;
  465.     CARD32    pad3 B32;
  466.     CARD32    pad4 B32;
  467.     CARD32    pad5 B32;
  468. } xkbGetIndicatorStateReply;
  469. #define    sz_xkbGetIndicatorStateReply    32
  470.  
  471. typedef struct _xkbGetIndicatorMap {
  472.     CARD8    reqType;
  473.     CARD8    xkbReqType;    /* always X_KBGetIndicatorMap */
  474.     CARD16    length B16;
  475.     CARD16    deviceSpec B16;
  476.     CARD16    pad B16;
  477.     CARD32    which B32;
  478. } xkbGetIndicatorMapReq;
  479. #define    sz_xkbGetIndicatorMapReq    12
  480.  
  481. typedef struct _xkbGetIndicatorMapReply {
  482.     CARD8    type;        /* always X_Reply */
  483.     CARD8    deviceID;
  484.     CARD16    sequenceNumber B16;
  485.     CARD32    length B32;
  486.     CARD32    which B32;
  487.     CARD32    realIndicators B32;
  488.     CARD8    nIndicators;
  489.     CARD8    pad1;
  490.     CARD16    pad2 B16;
  491.     CARD32    pad3 B32;
  492.     CARD32    pad4 B32;
  493.     CARD32    pad5 B32;
  494. } xkbGetIndicatorMapReply;
  495. #define    sz_xkbGetIndicatorMapReply    32
  496.  
  497. typedef struct _xkbIndicatorMapWireDesc {
  498.     CARD8    flags;
  499.     CARD8    whichGroups;
  500.     CARD8    groups;
  501.     CARD8    whichMods;
  502.     CARD8    mods;
  503.     CARD8    realMods;
  504.     CARD16    virtualMods B16;
  505.     CARD32    ctrls B32;
  506. } xkbIndicatorMapWireDesc;
  507. #define    sz_xkbIndicatorMapWireDesc    12
  508.  
  509. typedef struct _xkbSetIndicatorMap {
  510.     CARD8    reqType;
  511.     CARD8    xkbReqType;    /* always X_KBSetIndicatorMap */
  512.     CARD16    length B16;
  513.     CARD16    deviceSpec B16;
  514.     CARD16    pad1 B16;
  515.     CARD32    which B32;
  516. } xkbSetIndicatorMapReq;
  517. #define    sz_xkbSetIndicatorMapReq    12
  518.  
  519. typedef struct _xkbGetNamedIndicator {
  520.     CARD8    reqType;
  521.     CARD8    xkbReqType;    /* X_KBGetNamedIndicator */
  522.     CARD16    length B16;
  523.     CARD16    deviceSpec B16;
  524.     CARD16    ledClass B16;
  525.     CARD16    ledID B16;
  526.     CARD16    pad1 B16;
  527.     Atom    indicator B32;
  528. } xkbGetNamedIndicatorReq;
  529. #define    sz_xkbGetNamedIndicatorReq        16
  530.  
  531. typedef    struct _xkbGetNamedIndicatorReply {
  532.     BYTE    type;
  533.     BYTE    deviceID;
  534.     CARD16    sequenceNumber B16;
  535.     CARD32    length B32;
  536.     Atom    indicator B32;
  537.     BOOL    found;
  538.     BOOL    on;
  539.     BOOL    realIndicator;
  540.     CARD8    ndx;
  541.     CARD8    flags;
  542.     CARD8    whichGroups;
  543.     CARD8    groups;
  544.     CARD8    whichMods;
  545.     CARD8    mods;
  546.     CARD8    realMods;
  547.     CARD16    virtualMods B16;
  548.     CARD32    ctrls B32;
  549.     BOOL    supported;
  550.     CARD8    pad1;
  551.     CARD16    pad2 B16;
  552. } xkbGetNamedIndicatorReply;
  553. #define    sz_xkbGetNamedIndicatorReply    32
  554.  
  555. typedef struct _xkbSetNamedIndicator {
  556.     CARD8    reqType;
  557.     CARD8    xkbReqType;    /* X_KBSetNamedIndicator */
  558.     CARD16    length B16;
  559.     CARD16    deviceSpec B16;
  560.     CARD16    ledClass B16;
  561.     CARD16    ledID B16;
  562.     CARD16    pad1 B16;
  563.     Atom    indicator B32;
  564.     BOOL    setState;
  565.     BOOL    on;
  566.     BOOL    setMap;
  567.     BOOL    createMap;
  568.     CARD8    pad2;
  569.     CARD8    flags;
  570.     CARD8    whichGroups;
  571.     CARD8    groups;
  572.     CARD8    whichMods;
  573.     CARD8    realMods;
  574.     CARD16    virtualMods B16;
  575.     CARD32    ctrls B32;
  576. } xkbSetNamedIndicatorReq;
  577. #define    sz_xkbSetNamedIndicatorReq    32
  578.  
  579. typedef struct _xkbGetNames {
  580.     CARD8    reqType;
  581.     CARD8    xkbReqType;    /* always X_KBGetNames */
  582.     CARD16    length B16;
  583.     CARD16    deviceSpec B16;
  584.     CARD16    pad B16;
  585.     CARD32    which B32;
  586. } xkbGetNamesReq;
  587. #define    sz_xkbGetNamesReq        12
  588.  
  589. typedef    struct _xkbGetNamesReply {
  590.     BYTE    type;
  591.     BYTE    deviceID;
  592.     CARD16    sequenceNumber B16;
  593.     CARD32    length B32;
  594.     CARD32    which B32;
  595.     KeyCode    minKeyCode;
  596.     KeyCode    maxKeyCode;
  597.     CARD8    nTypes;
  598.     CARD8    groupNames;
  599.     CARD16    virtualMods B16;
  600.     KeyCode    firstKey;
  601.     CARD8    nKeys;
  602.     CARD32    indicators B32;
  603.     CARD8    nRadioGroups;
  604.     CARD8    nKeyAliases;
  605.     CARD16    nKTLevels B16;
  606.     CARD32    pad3 B32;
  607. } xkbGetNamesReply;
  608. #define    sz_xkbGetNamesReply    32
  609.  
  610. typedef struct _xkbSetNames {
  611.     CARD8    reqType;
  612.     CARD8    xkbReqType;    /* always X_KBSetNames */
  613.     CARD16    length B16;
  614.     CARD16    deviceSpec B16;
  615.     CARD16    virtualMods B16;
  616.     CARD32    which B32;
  617.     CARD8    firstType;
  618.     CARD8    nTypes;
  619.     CARD8    firstKTLevel;
  620.     CARD8    nKTLevels;
  621.     CARD32    indicators B32;
  622.     CARD8    groupNames;
  623.     CARD8    nRadioGroups;
  624.     KeyCode    firstKey;
  625.     CARD8    nKeys;
  626.     CARD8    nKeyAliases;
  627.     CARD8    pad1;
  628.     CARD16    totalKTLevelNames B16;
  629. } xkbSetNamesReq;
  630. #define    sz_xkbSetNamesReq    28
  631.  
  632. typedef struct _xkbPointWireDesc {
  633.     INT16    x B16;
  634.     INT16    y B16;
  635. } xkbPointWireDesc;
  636. #define    sz_xkbPointWireDesc    4
  637.  
  638. typedef struct _xkbOutlineWireDesc {
  639.     CARD8    nPoints;
  640.     CARD8    cornerRadius;
  641.     CARD16    pad B16;
  642. } xkbOutlineWireDesc;
  643. #define    sz_xkbOutlineWireDesc    4
  644.  
  645. typedef struct _xkbShapeWireDesc {
  646.     Atom    name B32;
  647.     CARD8    nOutlines;
  648.     CARD8    primaryNdx;
  649.     CARD8    approxNdx;
  650.     CARD8    pad;
  651. } xkbShapeWireDesc;
  652. #define    sz_xkbShapeWireDesc    8
  653.  
  654. typedef struct _xkbSectionWireDesc {
  655.     Atom    name B32;
  656.     INT16    top B16;
  657.     INT16    left B16;
  658.     CARD16    width B16;
  659.     CARD16    height B16;
  660.     INT16    angle B16;
  661.     CARD8    priority;
  662.     CARD8    nRows;
  663.     CARD8    nDoodads;
  664.     CARD8    nOverlays;
  665.     CARD16    pad B16;
  666. } xkbSectionWireDesc;
  667. #define    sz_xkbSectionWireDesc    20
  668.  
  669. typedef struct _xkbRowWireDesc {
  670.     INT16    top B16;
  671.     INT16    left B16;
  672.     CARD8    nKeys;
  673.     BOOL    vertical;
  674.     CARD16    pad B16;
  675. } xkbRowWireDesc;
  676. #define    sz_xkbRowWireDesc    8
  677.  
  678. typedef struct _xkbKeyWireDesc {
  679.     CARD8    name[XkbKeyNameLength];
  680.     INT16    gap B16;
  681.     CARD8    shapeNdx;
  682.     CARD8    colorNdx;
  683. } xkbKeyWireDesc;
  684. #define    sz_xkbKeyWireDesc    8
  685.  
  686. typedef struct _xkbOverlayWireDesc {
  687.     Atom    name B32;
  688.     CARD8    nRows;
  689.     CARD8    pad1;
  690.     CARD16    pad2 B16;
  691. } xkbOverlayWireDesc;
  692. #define    sz_xkbOverlayWireDesc    8
  693.  
  694. typedef struct _xkbOverlayRowWireDesc {
  695.    CARD8    rowUnder;
  696.    CARD8    nKeys;
  697.    CARD16    pad1 B16;
  698. } xkbOverlayRowWireDesc;
  699. #define    sz_xkbOverlayRowWireDesc    4
  700.  
  701. typedef struct _xkbOverlayKeyWireDesc {
  702.    CARD8    over[XkbKeyNameLength];
  703.    CARD8    under[XkbKeyNameLength];
  704. } xkbOverlayKeyWireDesc;
  705. #define    sz_xkbOverlayKeyWireDesc    8
  706.  
  707. typedef struct _xkbShapeDoodadWireDesc {
  708.     Atom    name B32;
  709.     CARD8    type;
  710.     CARD8    priority;
  711.     INT16    top B16;
  712.     INT16    left B16;
  713.     INT16    angle B16;
  714.     CARD8    colorNdx;
  715.     CARD8    shapeNdx;
  716.     CARD16    pad1 B16;
  717.     CARD32    pad2 B32;
  718. } xkbShapeDoodadWireDesc;
  719. #define    sz_xkbShapeDoodadWireDesc    20
  720.  
  721. typedef struct _xkbTextDoodadWireDesc {
  722.     Atom    name B32;
  723.     CARD8    type;
  724.     CARD8    priority;
  725.     INT16    top B16;
  726.     INT16    left B16;
  727.     INT16    angle B16;
  728.     CARD16    width B16;
  729.     CARD16    height B16;
  730.     CARD8    colorNdx;
  731.     CARD8    pad1;
  732.     CARD16    pad2 B16;
  733. } xkbTextDoodadWireDesc;
  734. #define    sz_xkbTextDoodadWireDesc    20
  735.  
  736. typedef struct _xkbIndicatorDoodadWireDesc {
  737.     Atom    name B32;
  738.     CARD8    type;
  739.     CARD8    priority;
  740.     INT16    top B16;
  741.     INT16    left B16;
  742.     INT16    angle B16;
  743.     CARD8    shapeNdx;
  744.     CARD8    onColorNdx;
  745.     CARD8    offColorNdx;
  746.     CARD8    pad1;
  747.     CARD32    pad2 B32;
  748. } xkbIndicatorDoodadWireDesc;
  749. #define    sz_xkbIndicatorDoodadWireDesc    20
  750.  
  751. typedef struct _xkbLogoDoodadWireDesc {
  752.     Atom    name B32;
  753.     CARD8    type;
  754.     CARD8    priority;
  755.     INT16    top B16;
  756.     INT16    left B16;
  757.     INT16    angle B16;
  758.     CARD8    colorNdx;
  759.     CARD8    shapeNdx;
  760.     CARD16    pad1 B16;
  761.     CARD32    pad2 B32;
  762. } xkbLogoDoodadWireDesc;
  763. #define    sz_xkbLogoDoodadWireDesc    20
  764.  
  765. typedef struct _xkbAnyDoodadWireDesc {
  766.     Atom    name B32;
  767.     CARD8    type;
  768.     CARD8    priority;
  769.     INT16    top B16;
  770.     INT16    left B16;
  771.     INT16    angle B16;
  772.     CARD32    pad2 B32;
  773.     CARD32    pad3 B32;
  774. } xkbAnyDoodadWireDesc;
  775. #define    sz_xkbAnyDoodadWireDesc    20
  776.  
  777. typedef union _xkbDoodadWireDesc {
  778.     xkbAnyDoodadWireDesc    any;
  779.     xkbShapeDoodadWireDesc    shape;
  780.     xkbTextDoodadWireDesc    text;
  781.     xkbIndicatorDoodadWireDesc    indicator;
  782.     xkbLogoDoodadWireDesc    logo;
  783. } xkbDoodadWireDesc;
  784. #define    sz_xkbDoodadWireDesc    20
  785.  
  786. typedef struct _xkbGetGeometry {
  787.     CARD8    reqType;
  788.     CARD8    xkbReqType;    /* always X_KBGetGeometry */
  789.     CARD16    length B16;
  790.     CARD16    deviceSpec B16;
  791.     CARD16    pad B16;
  792.     Atom    name B32;
  793. } xkbGetGeometryReq;
  794. #define    sz_xkbGetGeometryReq    12
  795.  
  796. typedef struct _xkbGetGeometryReply {
  797.     CARD8    type;        /* always X_Reply */
  798.     CARD8    deviceID;
  799.     CARD16    sequenceNumber B16;
  800.     CARD32    length B32;
  801.     Atom    name B32;
  802.     BOOL    found;
  803.     CARD8    pad;
  804.     CARD16    widthMM B16;
  805.     CARD16    heightMM B16;
  806.     CARD16    nProperties B16;
  807.     CARD16    nColors B16;
  808.     CARD16    nShapes B16;
  809.     CARD16    nSections B16;
  810.     CARD16    nDoodads B16;
  811.     CARD16    nKeyAliases B16;
  812.     CARD8    baseColorNdx;
  813.     CARD8    labelColorNdx;
  814. } xkbGetGeometryReply;
  815. #define    sz_xkbGetGeometryReply    32
  816.  
  817. typedef struct _xkbSetGeometry {
  818.     CARD8    reqType;
  819.     CARD8    xkbReqType;    /* always X_KBSetGeometry */
  820.     CARD16    length B16;
  821.     CARD16    deviceSpec B16;
  822.     CARD8    nShapes;
  823.     CARD8    nSections;
  824.     Atom    name B32;
  825.     CARD16    widthMM B16;
  826.     CARD16    heightMM B16;
  827.     CARD16    nProperties B16;
  828.     CARD16    nColors B16;
  829.     CARD16    nDoodads B16;
  830.     CARD16    nKeyAliases B16;
  831.     CARD8    baseColorNdx;
  832.     CARD8    labelColorNdx;
  833.     CARD16    pad B16;
  834. } xkbSetGeometryReq;
  835. #define    sz_xkbSetGeometryReq    28
  836.  
  837. typedef struct _xkbPerClientFlags {
  838.     CARD8    reqType;
  839.     CARD8    xkbReqType;/* always X_KBPerClientFlags */
  840.     CARD16    length B16;
  841.     CARD16    deviceSpec B16;
  842.     CARD16    pad1 B16;
  843.     CARD32    change B32;
  844.     CARD32    value B32;
  845.     CARD32    ctrlsToChange B32;
  846.     CARD32    autoCtrls B32;
  847.     CARD32    autoCtrlValues B32;
  848. } xkbPerClientFlagsReq;
  849. #define    sz_xkbPerClientFlagsReq    28
  850.  
  851. typedef struct _xkbPerClientFlagsReply {
  852.     CARD8    type;        /* always X_Reply */
  853.     CARD8    deviceID;
  854.     CARD16    sequenceNumber B16;
  855.     CARD32    length B32;
  856.     CARD32    supported B32;
  857.     CARD32    value B32;
  858.     CARD32    autoCtrls B32;
  859.     CARD32    autoCtrlValues B32;
  860.     CARD32    pad1 B32;
  861.     CARD32    pad2 B32;
  862. } xkbPerClientFlagsReply;
  863. #define    sz_xkbPerClientFlagsReply    32
  864.  
  865. typedef struct _xkbListComponents {
  866.     CARD8    reqType;
  867.     CARD8    xkbReqType;    /* always X_KBListComponents */
  868.     CARD16    length B16;
  869.     CARD16    deviceSpec B16;
  870.     CARD16    maxNames B16;
  871. } xkbListComponentsReq;
  872. #define    sz_xkbListComponentsReq    8
  873.  
  874. typedef struct _xkbListComponentsReply {
  875.     CARD8    type;        /* always X_Reply */
  876.     CARD8    deviceID;
  877.     CARD16    sequenceNumber B16;
  878.     CARD32    length B32;
  879.     CARD16    nKeymaps B16;
  880.     CARD16    nKeycodes B16;
  881.     CARD16    nTypes B16;
  882.     CARD16    nCompatMaps B16;
  883.     CARD16    nSymbols B16;
  884.     CARD16    nGeometries B16;
  885.     CARD16    extra B16;
  886.     CARD16    pad1 B16;
  887.     CARD32    pad2 B32;
  888.     CARD32    pad3 B32;
  889. } xkbListComponentsReply;
  890. #define    sz_xkbListComponentsReply    32
  891.  
  892. typedef struct _xkbGetKbdByName {
  893.     CARD8    reqType;
  894.     CARD8    xkbReqType;    /* always X_KBGetKbdByName */
  895.     CARD16    length B16;
  896.     CARD16    deviceSpec B16;
  897.     CARD16    need B16;    /* combination of XkbGBN_* */
  898.     CARD16    want B16;    /* combination of XkbGBN_* */
  899.     BOOL    load;
  900.     CARD8    pad;
  901. } xkbGetKbdByNameReq;
  902. #define    sz_xkbGetKbdByNameReq    12
  903.  
  904. typedef struct _xkbGetKbdByNameReply {
  905.     CARD8    type;        /* always X_Reply */
  906.     CARD8    deviceID;
  907.     CARD16    sequenceNumber B16;
  908.     CARD32    length B32;
  909.     KeyCode    minKeyCode;
  910.     KeyCode    maxKeyCode;
  911.     BOOL    loaded;
  912.     BOOL    newKeyboard;
  913.     CARD16    found B16;    /* combination of XkbGBN_* */
  914.     CARD16    reported B16;    /* combination of XkbAllComponents */
  915.     CARD32    pad1 B32;
  916.     CARD32    pad2 B32;
  917.     CARD32    pad3 B32;
  918.     CARD32    pad4 B32;
  919. } xkbGetKbdByNameReply;
  920. #define    sz_xkbGetKbdByNameReply    32
  921.  
  922. typedef    struct _xkbDeviceLedsWireDesc {
  923.     CARD16    ledClass B16;
  924.     CARD16    ledID B16;
  925.     CARD32    namesPresent B32;
  926.     CARD32    mapsPresent B32;
  927.     CARD32    physIndicators B32;
  928.     CARD32    state B32;
  929. } xkbDeviceLedsWireDesc;
  930. #define sz_xkbDeviceLedsWireDesc    20
  931.  
  932. typedef struct _xkbGetDeviceInfo {
  933.     CARD8    reqType;
  934.     CARD8    xkbReqType;    /* always X_KBGetDeviceInfo */
  935.     CARD16    length B16;
  936.     CARD16    deviceSpec B16;
  937.     CARD16    wanted B16;
  938.     BOOL    allBtns;
  939.     CARD8    firstBtn;
  940.     CARD8    nBtns;
  941.     CARD8    pad;
  942.     CARD16    ledClass B16;
  943.     CARD16    ledID B16;
  944. } xkbGetDeviceInfoReq;
  945. #define    sz_xkbGetDeviceInfoReq    16
  946.  
  947. typedef struct _xkbGetDeviceInfoReply {
  948.     CARD8    type;        /* always X_Reply */
  949.     CARD8    deviceID;
  950.     CARD16    sequenceNumber B16;
  951.     CARD32    length B32;
  952.     CARD16    present B16;
  953.     CARD16    supported B16;
  954.     CARD16    unsupported B16;
  955.     CARD16    nDeviceLedFBs B16;
  956.     CARD8    firstBtnWanted;
  957.     CARD8    nBtnsWanted;
  958.     CARD8    firstBtnRtrn;
  959.     CARD8    nBtnsRtrn;
  960.     CARD8    totalBtns;
  961.     BOOL    hasOwnState;
  962.     CARD16    dfltKbdFB B16;
  963.     CARD16    dfltLedFB B16;
  964.     CARD16    pad B16;
  965.     Atom    devType B32;
  966. } xkbGetDeviceInfoReply;
  967. #define    sz_xkbGetDeviceInfoReply    32
  968.  
  969. typedef struct _xkbSetDeviceInfo {
  970.     CARD8    reqType;
  971.     CARD8    xkbReqType;    /* always X_KBSetDeviceInfo */
  972.     CARD16    length B16;
  973.     CARD16    deviceSpec B16;
  974.     CARD8    firstBtn;
  975.     CARD8    nBtns;
  976.     CARD16    change B16;
  977.     CARD16    nDeviceLedFBs B16;
  978. } xkbSetDeviceInfoReq;
  979. #define    sz_xkbSetDeviceInfoReq    12
  980.  
  981. typedef struct _xkbSetDebuggingFlags {
  982.     CARD8    reqType;
  983.     CARD8    xkbReqType;    /* always X_KBSetDebuggingFlags */
  984.     CARD16    length B16;
  985.     CARD16    msgLength B16;
  986.     CARD16    pad B16;
  987.     CARD32    affectFlags B32;
  988.     CARD32    flags B32;
  989.     CARD32    affectCtrls B32;
  990.     CARD32    ctrls B32;
  991. } xkbSetDebuggingFlagsReq;
  992. #define    sz_xkbSetDebuggingFlagsReq    24
  993.  
  994. typedef struct _xkbSetDebuggingFlagsReply {
  995.     BYTE    type;        /* X_Reply */
  996.     CARD8    pad0;
  997.     CARD16    sequenceNumber B16;
  998.     CARD32    length B32;
  999.     CARD32    currentFlags B32;
  1000.     CARD32    currentCtrls B32;
  1001.     CARD32    supportedFlags B32;
  1002.     CARD32    supportedCtrls B32;
  1003.     CARD32    pad1 B32;
  1004.     CARD32    pad2 B32;
  1005. } xkbSetDebuggingFlagsReply;
  1006. #define    sz_xkbSetDebuggingFlagsReply    32
  1007.  
  1008.     /*
  1009.      * X KEYBOARD EXTENSION EVENT STRUCTURES
  1010.      */
  1011.  
  1012. typedef struct _xkbAnyEvent {
  1013.     BYTE    type;
  1014.     BYTE    xkbType;
  1015.     CARD16    sequenceNumber B16;
  1016.     Time    time B32;
  1017.     CARD8    deviceID;
  1018.     CARD8    pad1;
  1019.     CARD16    pad2 B16;
  1020.     CARD32    pad3 B32;
  1021.     CARD32    pad4 B32;
  1022.     CARD32    pad5 B32;
  1023.     CARD32    pad6 B32;
  1024.     CARD32    pad7 B32;
  1025. } xkbAnyEvent;
  1026. #define    sz_xkbAnyEvent 32
  1027.  
  1028. typedef    struct _xkbNewKeyboardNotify {
  1029.     BYTE    type;
  1030.     BYTE    xkbType;
  1031.     CARD16    sequenceNumber B16;
  1032.     Time    time B32;
  1033.     CARD8    deviceID;
  1034.     CARD8    oldDeviceID;
  1035.     KeyCode    minKeyCode;
  1036.     KeyCode    maxKeyCode;
  1037.     KeyCode    oldMinKeyCode;
  1038.     KeyCode    oldMaxKeyCode;
  1039.     CARD8    requestMajor;
  1040.     CARD8    requestMinor;
  1041.     CARD16    changed B16;
  1042.     CARD8    detail;
  1043.     CARD8    pad1;
  1044.     CARD32    pad2 B32;
  1045.     CARD32    pad3 B32;
  1046.     CARD32    pad4 B32;
  1047. } xkbNewKeyboardNotify;
  1048. #define    sz_xkbNewKeyboardNotify    32
  1049.  
  1050. typedef    struct _xkbMapNotify {
  1051.     BYTE    type;
  1052.     BYTE    xkbType;
  1053.     CARD16    sequenceNumber B16;
  1054.     Time    time B32;
  1055.     CARD8    deviceID;
  1056.     CARD8    ptrBtnActions;
  1057.     CARD16    changed B16;
  1058.     KeyCode    minKeyCode;
  1059.     KeyCode    maxKeyCode;
  1060.     CARD8    firstType;
  1061.     CARD8    nTypes;
  1062.     KeyCode    firstKeySym;
  1063.     CARD8    nKeySyms;
  1064.     KeyCode    firstKeyAct;
  1065.     CARD8    nKeyActs;
  1066.     KeyCode    firstKeyBehavior;
  1067.     CARD8    nKeyBehaviors;
  1068.     KeyCode    firstKeyExplicit;
  1069.     CARD8    nKeyExplicit;
  1070.     KeyCode    firstModMapKey;
  1071.     CARD8    nModMapKeys;
  1072.     KeyCode    firstVModMapKey;
  1073.     CARD8    nVModMapKeys;
  1074.     CARD16    virtualMods B16;
  1075.     CARD16    pad1 B16;
  1076. } xkbMapNotify;
  1077. #define    sz_xkbMapNotify    32
  1078.  
  1079. typedef    struct _xkbStateNotify {
  1080.     BYTE    type;
  1081.     BYTE    xkbType;
  1082.     CARD16    sequenceNumber B16;
  1083.     Time    time B32;
  1084.     CARD8    deviceID;
  1085.     CARD8    mods;
  1086.     CARD8    baseMods;
  1087.     CARD8    latchedMods;
  1088.     CARD8    lockedMods;
  1089.     CARD8    group;
  1090.     INT16    baseGroup B16;
  1091.     INT16    latchedGroup B16;
  1092.     CARD8    lockedGroup;
  1093.     CARD8    compatState;
  1094.     CARD8    grabMods;
  1095.     CARD8    compatGrabMods;
  1096.     CARD8    lookupMods;
  1097.     CARD8    compatLookupMods;
  1098.     CARD16    ptrBtnState B16;
  1099.     CARD16    changed B16;
  1100.     KeyCode    keycode;
  1101.     CARD8    eventType;
  1102.     CARD8    requestMajor;
  1103.     CARD8    requestMinor;
  1104. } xkbStateNotify;
  1105. #define    sz_xkbStateNotify    32
  1106.  
  1107. typedef struct _xkbControlsNotify {
  1108.     BYTE    type;
  1109.     BYTE    xkbType;
  1110.     CARD16    sequenceNumber B16;
  1111.     Time    time B32;
  1112.     CARD8    deviceID;
  1113.     CARD8    numGroups;
  1114.     CARD16    pad1 B16;
  1115.     CARD32    changedControls B32;
  1116.     CARD32    enabledControls B32;
  1117.     CARD32    enabledControlChanges B32;
  1118.     KeyCode    keycode;
  1119.     CARD8    eventType;
  1120.     CARD8    requestMajor;
  1121.     CARD8    requestMinor;
  1122.     CARD32    pad2 B32;
  1123. } xkbControlsNotify;
  1124. #define    sz_xkbControlsNotify    32
  1125.  
  1126. typedef struct _xkbIndicatorNotify {
  1127.     BYTE    type;
  1128.     BYTE    xkbType;
  1129.     CARD16    sequenceNumber B16;
  1130.     Time    time B32;
  1131.     CARD8    deviceID;
  1132.     CARD8    pad1;
  1133.     CARD16    pad2 B16;
  1134.     CARD32    state B32;
  1135.     CARD32    changed B32;
  1136.     CARD32    pad3 B32;
  1137.     CARD32    pad4 B32;
  1138.     CARD32    pad5 B32;
  1139. } xkbIndicatorNotify;
  1140. #define    sz_xkbIndicatorNotify    32
  1141.  
  1142. typedef struct _xkbNamesNotify {
  1143.     BYTE    type;
  1144.     BYTE    xkbType;
  1145.     CARD16    sequenceNumber B16;
  1146.     Time    time B32;
  1147.     CARD8    deviceID;
  1148.     CARD8    pad1;
  1149.     CARD16    changed B16;
  1150.     CARD8    firstType;
  1151.     CARD8    nTypes;
  1152.     CARD8    firstLevelName;
  1153.     CARD8    nLevelNames;
  1154.     CARD8    pad2;
  1155.     CARD8    nRadioGroups;
  1156.     CARD8    nAliases;
  1157.     CARD8    changedGroupNames;
  1158.     CARD16    changedVirtualMods B16;
  1159.     CARD8    firstKey;
  1160.     CARD8    nKeys;
  1161.     CARD32    changedIndicators B32;
  1162.     CARD32    pad3 B32;
  1163. } xkbNamesNotify;
  1164. #define    sz_xkbNamesNotify    32
  1165.  
  1166. typedef struct _xkbCompatMapNotify {
  1167.     BYTE    type;
  1168.     BYTE    xkbType;
  1169.     CARD16    sequenceNumber B16;
  1170.     Time    time B32;
  1171.     CARD8    deviceID;
  1172.     CARD8    changedGroups;
  1173.     CARD16    firstSI B16;
  1174.     CARD16    nSI B16;
  1175.     CARD16    nTotalSI B16;
  1176.     CARD32    pad1 B32;
  1177.     CARD32    pad2 B32;
  1178.     CARD32    pad3 B32;
  1179.     CARD32    pad4 B32;
  1180. } xkbCompatMapNotify;
  1181. #define sz_xkbCompatMapNotify    32
  1182.  
  1183. typedef struct _xkbBellNotify {
  1184.     BYTE    type;
  1185.     BYTE    xkbType;
  1186.     CARD16    sequenceNumber B16;
  1187.     Time    time B32;
  1188.     CARD8    deviceID;
  1189.     CARD8    bellClass;
  1190.     CARD8    bellID;
  1191.     CARD8    percent;
  1192.     CARD16    pitch B16;
  1193.     CARD16    duration B16;
  1194.     Atom    name B32;
  1195.     Window    window B32;
  1196.     BOOL    eventOnly;
  1197.     CARD8    pad1;
  1198.     CARD16    pad2 B16;
  1199.     CARD32    pad3 B32;
  1200. } xkbBellNotify;
  1201. #define    sz_xkbBellNotify    32
  1202.  
  1203. typedef struct _xkbActionMessage {
  1204.     BYTE    type;
  1205.     BYTE    xkbType;
  1206.     CARD16    sequenceNumber B16;
  1207.     Time    time B32;
  1208.     CARD8    deviceID;
  1209.     KeyCode    keycode;
  1210.     BOOL    press;
  1211.     BOOL    keyEventFollows;
  1212.     CARD8    mods;
  1213.     CARD8    group;
  1214.     CARD8    message[8];
  1215.     CARD16    pad1 B16;
  1216.     CARD32    pad2 B32;
  1217.     CARD32    pad3 B32;
  1218. } xkbActionMessage;
  1219. #define    sz_xkbActionMessage        32
  1220.  
  1221. typedef struct _xkbAccessXNotify {
  1222.     BYTE    type;
  1223.     BYTE    xkbType;
  1224.     CARD16    sequenceNumber B16;
  1225.     Time    time B32;
  1226.     CARD8    deviceID;
  1227.     KeyCode    keycode;
  1228.     CARD16    detail B16;
  1229.     CARD16    slowKeysDelay B16;
  1230.     CARD16    debounceDelay B16;
  1231.     CARD32    pad1 B32;
  1232.     CARD32    pad2 B32;
  1233.     CARD32    pad3 B32;
  1234.     CARD32    pad4 B32;
  1235. } xkbAccessXNotify;
  1236. #define    sz_xkbAccessXNotify    32
  1237.  
  1238. typedef struct _xkbExtensionDeviceNotify {
  1239.     BYTE    type;
  1240.     BYTE    xkbType;
  1241.     CARD16    sequenceNumber B16;
  1242.     Time    time B32;
  1243.     CARD8    deviceID;
  1244.     CARD8    pad1;
  1245.     CARD16    reason B16;
  1246.     CARD16    ledClass B16;
  1247.     CARD16    ledID B16;
  1248.     CARD32    ledsDefined B32;
  1249.     CARD32    ledState B32;
  1250.     CARD8    firstBtn;
  1251.     CARD8    nBtns;
  1252.     CARD16    supported B16;
  1253.     CARD16    unsupported B16;
  1254.     CARD16    pad3 B16;
  1255. } xkbExtensionDeviceNotify;
  1256. #define    sz_xkbExtensionDeviceNotify        32
  1257.  
  1258. typedef struct _xkbEvent {
  1259.     union {
  1260.     xkbAnyEvent        any;
  1261.     xkbNewKeyboardNotify    new_kbd;
  1262.     xkbMapNotify        map;
  1263.     xkbStateNotify        state;
  1264.     xkbControlsNotify    ctrls;
  1265.     xkbIndicatorNotify    indicators;
  1266.     xkbNamesNotify        names;
  1267.     xkbCompatMapNotify    compat;
  1268.     xkbBellNotify        bell;
  1269.     xkbActionMessage    message;
  1270.     xkbAccessXNotify    accessx;
  1271.     xkbExtensionDeviceNotify device;
  1272.     } u;
  1273. } xkbEvent;
  1274. #define sz_xkbEvent    32
  1275.  
  1276. #undef Window
  1277. #undef Atom
  1278. #undef Time
  1279. #undef KeyCode
  1280. #undef KeySym
  1281.  
  1282. #endif /* _XKBPROTO_H_ */
  1283.